package com.zhj.threadpoolboot.controller;


import org.apache.logging.log4j.util.Strings;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import java.util.stream.Stream;

@RestController
@RequestMapping("/zip")
public class ZipController {

    @RequestMapping("gzip")
    public String gzip()  {
        List<String> list = Stream.generate(() -> "有备考软考的小伙伴，想积分落户，单位评职称？科目太多不知道怎么选？考试考点难点太多没有头绪？刚准备1个多月过了高级，关注我，我整理了软考各科目的报考条件、适合人群以及备考攻略，可以直接领取：\n" +
                        "\n" +
                        " https://d.51cto.com/eDOcp1\n" +
                        "// 发送请求\n" +
                        "axios(config)\n" +
                        "  .then(response => {\n" +
                        "    // 这里的 response.data 是可读流\n" +
                        "    const stream = response.data;\n" +
                        "\n" +
                        "    // 处理流数据，这里以逐行打印为例\n" +
                        "    stream.on('data', chunk => {\n" +
                        "      // chunk 是 Buffer 对象，表示接收到的数据\n" +
                        "      console.log('Received chunk:', chunk.toString());\n" +
                        "    });\n" +
                        "\n" +
                        "    stream.on('end', () => {\n" +
                        "      console.log('No more data in stream.');\n" +
                        "    });\n" +
                        "  })\n" +
                        "  .catch(error => {\n" +
                        "    console.error('Error while fetching data:', error);\n" +
                        "  });\n" +
                        "希望这篇文章能够帮助你更好地理解如何使用 Axios 读取流式数据！随着你的进一步学习，你会发现流式处理的用法和优势在许多实际应用中大放异彩。如果还有任何疑问或需要进一步的帮助，随时可以向我询问！Happy coding!\n" +
                        "\n" +
                        "有备考软考的小伙伴，想积分落户，单位评职称？科目太多不知道怎么选？考试考点难点太多没有头绪？刚准备1个多月过了高级，关注我，我整理了软考各科目的报考条件、适合人群以及备考攻略，可以直接领取：\n" +
                        "\n" +
                        " https://d.51cto.com/eDOcp1\n" +
                        "-----------------------------------\n" +
                        "©著作权归作者所有：来自51CTO博客作者mob64ca12d4a164的原创作品，请联系作者获取转载授权，否则将追究法律责任\n" +
                        "axios读取流式数据\n" +
                        "https://blog.51cto.com/u_16213317/12984555")
                .limit(1000).toList();
        return Strings.join(list,',');
    }

    public static void main(String[] args) {
        List<String> list = Stream.generate(() -> "有备考软考的小伙伴，想积分落户，单位评职称？科目太多不知道怎么选？考试考点难点太多没有头绪？刚准备1个多月过了高级，关注我，我整理了软考各科目的报考条件、适合人群以及备考攻略，可以直接领取：\n" +
                        "\n" +
                        " https://d.51cto.com/eDOcp1\n" +
                        "// 发送请求\n" +
                        "axios(config)\n" +
                        "  .then(response => {\n" +
                        "    // 这里的 response.data 是可读流\n" +
                        "    const stream = response.data;\n" +
                        "\n" +
                        "    // 处理流数据，这里以逐行打印为例\n" +
                        "    stream.on('data', chunk => {\n" +
                        "      // chunk 是 Buffer 对象，表示接收到的数据\n" +
                        "      console.log('Received chunk:', chunk.toString());\n" +
                        "    });\n" +
                        "\n" +
                        "    stream.on('end', () => {\n" +
                        "      console.log('No more data in stream.');\n" +
                        "    });\n" +
                        "  })\n" +
                        "  .catch(error => {\n" +
                        "    console.error('Error while fetching data:', error);\n" +
                        "  });\n" +
                        "希望这篇文章能够帮助你更好地理解如何使用 Axios 读取流式数据！随着你的进一步学习，你会发现流式处理的用法和优势在许多实际应用中大放异彩。如果还有任何疑问或需要进一步的帮助，随时可以向我询问！Happy coding!\n" +
                        "\n" +
                        "有备考软考的小伙伴，想积分落户，单位评职称？科目太多不知道怎么选？考试考点难点太多没有头绪？刚准备1个多月过了高级，关注我，我整理了软考各科目的报考条件、适合人群以及备考攻略，可以直接领取：\n" +
                        "\n" +
                        " https://d.51cto.com/eDOcp1\n" +
                        "-----------------------------------\n" +
                        "©著作权归作者所有：来自51CTO博客作者mob64ca12d4a164的原创作品，请联系作者获取转载授权，否则将追究法律责任\n" +
                        "axios读取流式数据\n" +
                        "https://blog.51cto.com/u_16213317/12984555")
                .limit(1000).toList();
        try {
            FileWriter writer = new FileWriter("test.txt");
            writer.write(String.join(",", list));
            writer.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }


}
